#pragma once
#include "effect.h"
#include <string>
#include <map>

namespace krryn{
namespace view{
	class shader;

	class shader_catalog{
	public:
		virtual ~shader_catalog() {}
		shader *get_shader(const std::string &a_Filename);

	protected:
		virtual shader *load_shader(const std::string &a_Filename) = 0;

	private:
		std::map<std::string, shader*> m_Shaders;
	};
}
}